************************* MASTER CODE *************************************** The name of the first file in this disk's directory identifies the volume, issue number and revision of the disk. The format of this filename is: !CDmvvii.rrr where ! = the '!' character m = C for C Users Journal, W for Windows/DOS Developer's Journal vv = volume ii = issue rrr = revision (001 for initial release, 002 for next update, etc.) The file UPDATE.DOC contains information about any additions or corrections to material on the disk since the original magazine publication. If you have obtained this code from a floppy diskette or from CompuServe, the headings under the column "FILENAME" represent the names of .ZIP files. All files listed under the filename are archived in the .ZIP file. If you have obtained this code from UUNET, the headings under the column "FILENAME" represent the names of subdirectories. All files listed under the "filename" are included in a subdirectory of that name. Keywords: C C++ Compression Pattern Printable Bit Archive The code listings for the February 1994 issue of The C Users Journal include source for Philip Gage's Byte Pair Compression algorithm, Erick Otto's text pattern matching, Thad Smith III's binary-to-printable-character encoding algorithm, Siegfried Heintze's class for bit arrays, and Pat LaBrocca's self-extracting archive. ************************* FILE DESCRIPTION ********************************** The following files are included in the disk: FILENAME AUTHOR-NAME TITLE PAGE (Zip archive/ subdirectory name) ------------------------------------------------------------------------------- plauger P.J. Plauger Standard C 10 xmsg.h - listing 1, A class to handle exceptions reraise.h - listing 2, Definition of class reraise xlogic.h - listing 3, A derived class to handle logic errors xruntime.h - listing 4, A derived class to handle runtime errors xdomain.h - listing 5, A derived class to handle domain errors xrange.h - listing 6, A derived class to handle range errors badcast.h - listing 7, A class to handle bad dynamic casts saks Dan Saks Stepping Up to C++ 87 mix.h - listing 1, A class hierarchy that mixes virtual and non-virtual overriding testmix.cpp - listing 2, A test program for the hierarchy in mix.h (listing 1) overload.h - listing 3, A class with overloaded virtual functions hides.cpp - listing 4, Demonstrates how a declaration in an inner scope hides all functions with the same name in an outer scope partial.h - listing 5, A class hierarchy that overrides some but not all overloaded virtual functions testpart.cpp - listing 6, A test program for partial.h (listing 5) gage Philip Gage A New Algorithm for 23 Data Compression compress.c - listing 3, The compression program expand.c - listing 4, The expansion program otto Erick Otto Two Fast Pattern-Matching 39 Algorithms bm.c - listing 1, The Boyer and Moore algorithm bzyatg.c - listing 2, The Beaza-Yates and Gonnet algorithm freq.c - listing 3, Generates a header file with frequency distribution of specified file smith Thad Smith III Coding with Printable 51 Characters code13_2.c - listing 1, Codes 13-bit values into two characters conv2_13.c - listing 2, Translates two characters back to 13 bits calc9_11.c - listing 3, Calculation to encode 9 input bytes into 11 characters baz.h - listing 4, External definitions of BAZ routines bazcom.h - listing 5, Internal definitions for BAZ routines ebaz.c - listing 6, Code to convert 9 bytes to 11 characters dbaz.c - listing 7, Decodes 9 bytes from 11 characters crc16.h - listing 8, Header for 16-bit CRC calculation crc16g.h - listing 9, Calculates the CRC, a block at a time baz.c - listing 10, Encodes binary file to BAZ911 file zab.c - listing 11, Decodes BAZ911-encoded file heintze Siegfried Heintze Intuitive Access to 67 Bit Arrays bitarr.h - listing 1, Definition of classes BitField and BitArray bitarr.cpp - listing 2, Demonstrates operation of bit arrays labrocca P. J. LaBrocca A Self-Extracting 75 Archive for MS-DOS sea.h - listing 1, Prefix header structure arch.c - listing 2, Archiver extr.c - listing 3, Extraction module makefile.mak - listing 4, Makefile for arch.exe and extr.exe remake.bat - listing 5, A batch file to check MagicNumber remake.awk - listing 6, An awk file to check the size of MagicNumber allison Chuck Allison Code Capsules: Variable-Length 103 Argument Lists max1.c - listing 1, A function to find the largest of n integers vargs1.c - listing 2, A function to extract integer/string argument pairs vargs2.c - listing 3, Encapsulates the parameter extraction logic vargs3.c - listing 4, Uses macros in stdarg.h to process variable-length argument lists max2.c - listing 5, Implements maxn via the stdarg macros concat.c - listing 6, A function to concatenate a variable number of strings tblrow.c - listing 7, Uses a va_list to populate tables fatal.c - listing 8, Uses vprintf to exit program with error message prepend.c - listing 9, Demonstrates use of prepend function preprint.c - listing 10, Functions to build strings backwards commas.c - listing 11, Uses prepend and preprintf functions to format numbers with comma separators letters Letters to Editor We Have Mail 118 dyn2darr.c - not listed in magazine, submitted by Steve Coffman as improvement to P.J LaBrocca's code (see "Dynamic Two-Dimensional Arrays," by P.J. LaBrocca, CUJ, November 1993, page 72. dyn2darr.h - not listed in magazine, submitted by Steve Coffman as improvement to P.J. LaBrocca's code ****************************************************************************** If you have questions regarding to the disk, please call or write us. ----------------------------------------------------------------------------- R&D Publications, Inc. 1601 W. 23rd St. Suite 200 Lawrence, KS 66046 (913) 841-1631 -----------------------------------------------------------------------------